  float4x4 worldViewProjection : WorldViewProjection;
  float4x4 world : WORLD;

  struct VertexShaderInput {
    float4 position : POSITION;
  };
  
  struct PixelShaderInput {
  	float4 posProj : TEXCOORD0;
  	float4 position : POSITION;
  };
  
  PixelShaderInput vertexShaderFunction(VertexShaderInput input) {
    PixelShaderInput output;
    output.posProj = output.position = mul(input.position, worldViewProjection);
    return output;
  }

  float4 pixelShaderFunction(PixelShaderInput input): COLOR {
  	input.posProj.xyz /= input.posProj.w;
  	input.posProj.xy = 0.5 * input.posProj.xy + 0.5;
  	return  input.posProj;
  }

  // #o3d VertexShaderEntryPoint vertexShaderFunction
  // #o3d PixelShaderEntryPoint pixelShaderFunction
  // #o3d MatrixLoadOrder RowMajor